home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Archives / ARexxTools / fpl70.lha / FUTURE < prev    next >
Encoding:
Text File  |  1994-04-11  |  4.3 KB  |  102 lines

  1.                 #############
  2.                 FUTURE of FPL
  3.                 #############
  4.  
  5.   Here follows a list with some ideas for the future of FPL. These are the
  6. items that feel are most important (in a very approximate order of
  7. importance):
  8.  
  9. * Static string caching. A given number of static strings that are used in an
  10.   FPL program run will be stored while the program is running. Each time the
  11.   static string is reffered, it will be read from the cache. Especially loops
  12.   using [large] static strings will get a major speed increase. Will get
  13.   switched on first when using FPLTAG_STRINGSTACKSIZE.
  14.  
  15.   (Also in subject of changing is the way FPL scans a string. It might get
  16.   faster if FPL did count the string length first, and then did _one_ alloc in
  17.   the beginning instead of reallocing and parsing the string and the same
  18.   time.)
  19.  
  20. * Full C-style expression parsing. Today FPL uses the handicapped, always-
  21.   read-the-entire-expression habit which is not at satisfactory!
  22.  
  23. * FPLTAG_HOOK_LOAD, replace FPL's load functions. Enable compressed/encrypted
  24.   programs or add path searching for programs or...
  25.  
  26. * Support array declaration and assigning without speciying array size (as in
  27.   regular C). I.e, "int array[]={0, 2, 3, 4, 12};"
  28.  
  29. * FPLSEND_WATCH_SYMBOL. Get more information about a specific FPL symbol.
  30.   Variables *and* functions.
  31.  
  32. * 'enum' support.
  33.  
  34. * (AMIGA) StackSwap() swap stack i a neat way. New flag options is also on
  35.   its way: FPLTAG_HANDSOFF_STACK which will make FPL give the host program
  36.   its stack back when the interface program is called. Thus enabling that
  37.   program to use stack checkings and expansions as much as it pleases...
  38.  
  39. * Multithread support. Run multiple FPL program simultanously sharing global
  40.   data. (Probably done by adding fplAddThread() and fplDelThread().) I still
  41.   haven't got a system independent resource locking method, and will probably
  42.   *not* find one. Locks will be done in different way depending on the OS
  43.   capabilties.
  44.  
  45. * FPLTAG_QUERY_CACHE
  46.   Runtime-query the interface function whether to cache or not. The query
  47.   will be done after the other cache options has been read and taken effect.
  48.   That is, using no chache will never query, caching only exports will only
  49.   query if there is any exports and so on....
  50.  
  51. * FPLTAG_QUERY_OVERRUN_SYMBOLS
  52.   Whether a second exported symbol should just overrun the previous one with
  53.   the same name.
  54.  
  55. * some kind of locale support to make error string appear in the user's
  56.   native language. Amiga has wonderful support (V38+) for this, but how
  57.   should I do this system independent?
  58.  
  59. * (Amiga) Flush memory caches when the library Expunge() vector is called.
  60.   (Which is done when doing an "avail flush" or when the system is short of
  61.   memory.)
  62.  
  63. * (Amiga) ARexx library emulator that can call and take advantage of ARexx
  64.   libraries (libraries done to be called from ARexx). Will most likely be
  65.   implemented as a funclib.
  66.  
  67. * Tokenizer/compiler (under development, will not be implemented until FPL
  68.   is more stable and does not expand this much!).
  69.   
  70. * Make 'char' and 'short' variables and arrays take no more memory than
  71.   they should. (8 resp. 16 bits each.)
  72.   
  73. * Pointers will be implemented. At first only to all the numeric
  74.   variable types that exist today, 'int', 'long', 'char' and 'short'.
  75.   Of course any number of pointer levels. such as "char *********p;".
  76.   
  77. * malloc() and a lot of other clean and pure C library functions
  78.   will be added.
  79.   
  80. * Structures.
  81.   
  82. * Float variables and expressions
  83.   
  84. * Reading SAS/C pragma files to be able to call AmigaDOS shared
  85.   libraries straight from FPL.
  86.   
  87. * FPL symbolic debugger. This will be able to use together with any
  88.   software using FPL! I think I will get someone to help me code this...
  89.   
  90. * Storing all local symbol information in some kind of simulated
  91.   stack to be able to call direct function calls to absolute addresses
  92.   in memory to functions refering to data stored in the FPL program.
  93.   Adding such functions will have to be done in some kind of
  94.   OpenLibrary() way, or like an OS/2 and UNIX shared library function
  95.   access solution (setting up a function that associates function
  96.   identifiers with absolute memory addresses). An already working
  97.   software with FPL interface should be able to call another compiled
  98.   program using this function. No interpreting overhead!!!
  99.   
  100. * Now we should be able to interpret any C program with only a small
  101.   preparation.
  102.